In recent years, for example, a laser beam printer having high printing grade has been generally used even at an office whose business is not printing itself, due to development in low cost printers. In addition, networking of computer devices used in the office has been also developed significantly in recent years. Against such a background, it has not been exceptional to use a plurality of printers connected to a network in an ordinary office. As such a printer usage form has become general, how to utilize the plurality of printers connected to the network effectively has become a new challenge.
In network systems, in order to print with a personal computer (PC) as a network terminal, there are many network systems provided with a print server such that the PC enables to print without exchanging print data, control information and the like with the printers by itself. Providing the print server provides mainly the following merits (1) and (2).
(1) It is possible to minimize processes dependent on an individual printer running on a client PC, and put loads for that to the print server. Thereby, for example, when a user executes a printing process of a document on the client PC, it is possible to reduce a processing time on the above described client PC, that is, the user's wait time.
Specifically, for example, if “Microsoft Windows®” (hereinafter, referred to as “Windows”) is used as an operating system (OS) of the client PC and the client PC executes the printing process with the printer via the print server, the client PC generates an intermediate file independent of the printer (the intermediate file), instead of a data file inherent to the printer which may be processed directly by the printer (the data file including control commands inherent to the above described printer), and sends the above described intermediate file to the print server.
The print server generates the data inherent to the printer based on the intermediate file from the client PC, sends the above described data (printer-dependent commands) to the printer. Therefore, the client PC may reduce processes for printing by means of the printer, via the print server.
(2) It is possible to process a value-added print job.
For example, by setting a priority for processing for each print job, if a plurality of print jobs become simultaneously waiting to be processed, a processing order may be determined based on the priorities which the print jobs have. Therefore, it may be possible to print the print job of a document which is necessary to print urgently and the like, in preference to others. In addition, for example, the print server may provide an alternate printing service for selecting another printer instead to execute the printing process, if an error has been occurred in the printer to which the print server attempts to send the print job received from the client PC, a distributed printing service for logically splitting one print job and causing the plurality of printers to execute the printing process in parallel in order to reduce a printing time, and the like.
Here, the above described distributed printing service will be described specifically. For example, in a network print system, it is assumed that “Windows” is used as the operating system (OS) of the client PC and the print server, and the client PC executes the printing process with the printer via the print server.
First, a system manager prepares one or more logical printers on the print server.
On the other hand, the logical printer corresponding to the logical printer prepared on the print server is created on the client PC.
“Logical printer” as used herein is a physical printer modeled on the OS, that is, “Windows”, and is for example, a printer driver used in conversion from document data into the data to be sent to the printer, or an object managing various information such as a destination for outputting the data of the print job, and the like.
When the user of the client PC, on which “Windows” operates, executes to print with an application program, he specifies the logical printer and gives an instruction to execute the printing.
Thereby, “Windows” operating on the client PC converts a draw command received from the application program into a data format called an EMF format.
“EMF format” is the data format which inherits characteristics of a graphics system called “GDI” of “Windows”, which is independent of the devices (the printer and the like), and does not include any command or information dependent on the devices.
Then, “Windows” on the client PC transfers the print job data converted into the EMF format to the print server.
“Windows” on the print server stores the print job data in the EMF format received from the client PC, on a memory such as a hard disk temporarily, thereafter reads the print job data in the EMF format from the above described memory, and converts the above described read data into the data format of a page description language (PDL) supported by the above described printer, using the printer driver of the printer with which the printing process is to be executed.
Subsequently, “Windows” on the print server sends the converted print job data as described above to the printer via a module called a port monitor.
It should be noted that if the printer to be a target is a network printer connected directly to the network, the print job data is sent via a NIC (network interface card) as a network interface.
The printer receives the print job data (the print job data in the PDL format) from the print server and interprets the PDL to execute the printing process.
It should be noted that details of the printing process as used herein are described in a publication called “Resource Kit” issued for each version of “Windows”.
Focusing on a configuration of the network print system (printing system) using “Windows” as described above, third parties have executed a feature expansion as will be described below.
First, though with respect to a print object created by “Windows” on the print server, the port monitor module is typically set as a program module for transferring the print job data to the physical printer, this port monitor module is replaced with a module for passing the print job data to another print service program operating on the print server. This module is a module for executing a feature in which the print job data is not sent to the printer, but for example, stored as a file on the hard disk, such that the print service program acquires the print job data by reading the above described file, executes a unique process on it and sends the processed print job data described above to the printer.
Having such a configuration, the print service program may add the feature which is not included in “Windows”, as the feature of the print server to provide the feature expansion.
A distributed printing feature in the distributed printing service is realized by using the above described feature expansion. “Distributed printing feature” is a feature of logically splitting one print job to generate a plurality of split jobs, and allocating these split jobs among the plurality of printers to cause the above described plurality of printers to execute the printing process. Thereby it is possible to reduce the time required for the print job.
Though some methods may be applied to as a method for logically splitting one print job, as typical methods, there are a method for splitting the print job based on the number of copies, a method for splitting the document to be printed into a page direction, and the like.
In the case of the method for splitting the print job based on the number of copies, a sum of the numbers of copies to be printed in the respective printers equals to the number of copies specified in the print job before being split.
On the other hand, in the case of the method for splitting the document to be printed into the page direction, a collection of all of page ranges to be printed in the respective printers equals to the whole page range of the document to be printed with the print job before being split.
In the distributed printing feature, it is necessary to previously decide and set a split ratio for splitting the original print job to allocate with respect to the plurality of printers. As a method for setting the split ratio, for example, there are a method for setting the split ratio such that the numbers of output are equal with respect to the plurality of printers to be targets of the distributed printing, a method for allocating the split ratio with an inclination depending on printing speed performances of the printers such that the number of output of the printer having a fast printing speed is larger than others, and the like.
The above described two methods of splitting the print job are based on concepts of splitting which are originally different from each other, and it is also possible to combine these methods in principle.
For example, with respect to a print job for printing 10 copies of a document whose output results in 100 sheets for a copy, if the above described print job is printed with four printers, first, the print job is split into two jobs whose numbers of copies are 5 respectively, further these two jobs are split into jobs of 1 to 50 sheets and jobs of 51 to 100 sheets respectively, and the resultant four jobs (the split jobs) are allocated with respect to the four printers.
Therefore, it is necessary to set the split ratio of the print job in the distributed printing feature, in a plurality of types depending on the splitting method.
With the feature expansion in the network print system as described above, there may be printers added with the features of the following examples:
a printer configured to execute an alternate printing process according to the priority of the devices previously decided; and
a printer configured to, when the error occurs in the printer, register again an unprocessed file output request registered in an output queue corresponding to the printer in which the error occurs, into another output queue corresponding to another normal printer to change an output printer.
By the way, though the above description assumes a usage form in which the a plurality of users share the print server, a form may be also considered in which a single end user uses on his machine the system for providing a value-added printing feature such as the alternate printing feature as described above.
In order to operate the above described print server, the system manager not only installs modules configuring software in the machine, but also creates the logical printer on the print server machine to be used on the above described print server system. In addition, if the system having the value-added printing feature is used on the end user's machine, the end user sets the logical printer by himself. In either case, it is necessary to set a type, an address on the network or the like of the printer depending on its environment. This setting is executed in Windows in the following method.
First, the port monitor for processing the print data to be sent to the printer is created. This is executed with a setting tool attached to the print server. The setting tool is provided with a user interface, and the user inputs information necessary for creating the port monitor. This necessary information includes at least the followings:
a model name of the printer;
an address of the network interface of the printer, which is assigned uniquely in the network;
a method for transferring the print data to the printer and setting information necessary for the transfer; and
an instance name of the port monitor to be created. (Further, some features included in the print server may require more detailed information on the printer, which is omitted herein.)
Next, the printer driver is installed. This installation is executed by selecting an appropriate one of the model names of the printers specified in creation of the port monitor. Then, it is determined first whether a desired printer driver has been already installed, and if it has been installed, the installation is not executed again, and the installation is actually executed only if it has not been installed.
Finally, an instance of the logical printer is created. When the instance of the logical printer is created, the following information is specified as its attributes:
the instance name of the port monitor;
a name of the printer driver; and
an instance name of the logical printer to be created.
It should be noted again that further, some features included in the print server may require more detailed information on the logical printer, which is omitted herein.
As seen with the above described attributes, the port monitor and the printer driver, which have been created or installed based on the information regarding the printer to be used, are specified in the logical printer. It should be noted here that in Windows, printer device information is not included directly in the setting information of the logical printer itself, and the printer device information is separately managed in the port monitor assigned to the logical printer and is associated with the logical printer via the port monitor. Accordingly, even if the instance of the port monitor assigned to a certain logical printer is replaced with another port monitor, there is no problem in mechanism as far as the model of the printer set for the replaced port monitor is the model which is compliant with the printer driver assigned to the above described logical printer.
As described above, by introducing the print server, it is possible to extend the printing feature of the OS to add the feature which the OS does not have originally. However, in order to do so, it is necessary for the system manager to create the one or more logical printers on the machine on which the print server operates, and set up the environment of the print server, as described above.
In addition, in the case of the form in which a single user uses the above described system for providing the value-added printing feature, the user must set up the system by himself.
However, in order to create the logical printer, it is necessary to input correctly the information on the model name or the address of the printer device, the name of an appropriate printer driver and the like. This task is not just bothersome, but also, if the end user sets up the system by himself, problems are likely to occur such that it is difficult for the end user to acquire the information for the setup, or that the end user is confused due to lack of understanding of the information necessary to input. Furthermore, even though the system manager executes this task, the task itself becomes complicated as the number of the logical printers to be created is increased, and accordingly it becomes more likely to occur mistakes in the setup.